﻿// See https://aka.ms/new-console-template for more information
using System.IO.Pipes;

Console.WriteLine("Hello, World!");
//dep 
//using System;

/*namespace RabbitProblem
{
    class Program
    {
        static void Main(string[] args)
        {*/
            // 1. 提示用户输入需要查询的月份数，明确需求
            Console.WriteLine("请输入要查询的月份数：");

// 2. 读取用户输入并转换为整数类型（月份M，用单个大写字母命名）
// int.TryParse确保输入非数字时程序不崩溃，返回bool值判断转换是否成功 


/*var isSuccess = */int.TryParse(Console.ReadLine(), out int M);

            // 3. 验证输入有效性：月份需为正整数，否则提示错误并结束程序
            if (/*!isSuccess || */M < 1)
            {
                Console.WriteLine("输入错误！请输入大于0的正整数。");
                return; // 终止程序，避免后续无效计算
            }

            // 4. 定义变量存储兔子对数（用单个大写字母命名，符合要求）
            // A：代表当前月份的前两个月兔子对数（初始为第1个月的1对）
            // B：代表当前月份的前一个月兔子对数（初始为第2个月的1对）
            // C：代表当前月份的兔子对数（用于临时计算和存储）
            int A = 1, B = 1, C = 0;

            // 5. 分情况输出兔子对数：前2个月规律特殊，直接输出；3个月及以上按递推规律计算
            if (M == 1 || M == 2)
            {
                // 第1、2个月兔子对数均为1
                Console.WriteLine($"第{M}个月的兔子对数为：1");
            }
            else
            {
                // 循环从第3个月计算到第M个月（i代表当前计算的月份）
                for (int i = 3; i <= M; i++)
                {
                    // 核心规律：当前月兔子对数 = 前一个月对数 + 前两个月对数（斐波那契数列）
                    // 原理：前一个月的兔子都存活，前两个月的兔子已成年开始生新兔子
                    C = A + B;

                    // 更新变量：为下一个月计算做准备
                    // 前两个月（A）更新为上月的前一个月（B）
                    A = B;
                    // 前一个月（B）更新为当前月的对数（C）
                    B = C;
                }
                // 输出第M个月的兔子对数
                Console.WriteLine($"第{M}个月的兔子对数为：{C}");
            }

            // 6. 防止控制台闪退，让用户看清结果（按任意键关闭）
            Console.WriteLine("按任意键关闭窗口...");
            Console.ReadKey();
//}
//}
//}
//person
Console.Write("请输入一个数字");
string input = Console.ReadLine();//获取字符串


